package com.zjhome.cloudnote.exception;

import org.springframework.util.StringUtils;

import com.zjhome.cloudnote.constant.ErrorCode;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.RequiredArgsConstructor;

/**
 * 基础异常
 * 
 * @author 0283000121
 *
 */
@Data
public class BaseException extends RuntimeException {
	private ErrorCode errorCode;	// 错误码
	
	/**
	 * 构造函数
	 * 
	 * @param message	自定义消息，如果为空，则取 errorCode中的remark消息
	 * @param errorCode
	 */
	public BaseException(String message, ErrorCode errorCode) {
		super(StringUtils.isEmpty(message) ? errorCode.getRemark(): message);
		this.errorCode = errorCode;
	}
	
	public BaseException(String message, ErrorCode errorCode, Throwable cause) {
		super(StringUtils.isEmpty(message) ? errorCode.getRemark(): message, cause);
		this.errorCode = errorCode;
	}
}
